package logic

import (
	"errors"
	"my_chat/dao/mysql"
	"my_chat/model"
)

func AddFriends(p *model.ContactValid) (data interface{}, err error) {

	// 判断添加用户是否存在
	status := mysql.IsUserExits(p.DstId)
	if !status {
		return nil, errors.New("添加用户不存在")
	}

	return mysql.AddFriends(p.UserId, int64(mysql.FindUserByMobile(p.DstId)))
}

func LoadFriends(p *model.ContactValid) (data []model.User, err error) {
	return mysql.GetContact(p.UserId)
}

func LoadCommunity(p *model.ContactValid) (data []model.Community, err error) {
	return mysql.GetGroup(p.UserId)
}

func CreateCommunity(p *model.Community) (data interface{}, err error) {
	communityId, err := mysql.CreateCommunity(p)
	if err != nil {
		return nil, err
	}
	// 将自己加入群聊内
	return mysql.AddCommunity(p.Ownerid, communityId.(int64))
}

func AddCommunity(p *model.ContactValid) (data interface{}, err error) {
	// 判断添加用户是否存在
	status := mysql.IsCommunityExits(p.DstId)
	if !status {
		return nil, errors.New("添加群聊不存在")
	}

	dstId := int64(mysql.FindCommunityByName(p.DstId))
	//判断是否已经添加过
	b, err := mysql.IsExist(p.UserId, dstId, 2)
	if err != nil {
		return nil, err
	}
	if b {
		return nil, errors.New("已经添加过")
	}

	return mysql.AddCommunity(p.UserId, dstId)
}

func GetUserById(p *model.ContactValid) (data interface{}, err error) {
	return mysql.GetUserById(p.UserId)
}
